/*
 * app.lockenabler2.Preferences.java
 * 
 * Copyright (C) 2010-11 kfv 
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 3 of the License.
 * 
 */

package app.lockenabler2;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

public class Preferences extends Activity {
    private String name;
    private Context context;

    // Конструктор
    public Preferences(String n, Context c){
        name = n;
        context = c;
    }

    // Задаем значение настройки int
    public void setValue(int i){
        setSettingsInt(name, i);
    }

    // Перегружаем, задаем значение настройки boolean
    public void setValue(boolean b){
        setSettingsBoolean(name, b);
    }

    // Перегружаем, задаем значение настройки String
    public void setValue(String str){
        setSettingsString(name, str);
    }

    // Возвращаем значение int настройки. i - значение, подставляемое, если настройки нет в системе.
    public int getValue(int i){
        return getSettingsInt(name, i);
    }

    // Перегружаем метод возвращения значения настройки для booolean. b - значение, подставляемое, если настройки нет в системе.
    public boolean getValue(boolean b){
        return getSettingsBoolean(name, b);
    }

    // Перегружаем метод возвращения значения настройки для String. str - значение, подставляемое, если настройки нет в системе.
    public String getValue(String str){
        return getSettingsString(name, str);
    }

    // Задать настройки. s - строка идентификатор, i - значение, подставляемое, если настройки нет в системе.
    private void setSettingsInt(String s, int i){
        SharedPreferences set_settings = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor set = set_settings.edit();
        set.putInt(s, i);
        set.commit();
    }

    // Получить настройки. s - строка идентификатор, i - значение, подставляемое, если настройки нет в системе.
    private int getSettingsInt(String s, int i){
        SharedPreferences get_settings = PreferenceManager.getDefaultSharedPreferences(context);
        int get = get_settings.getInt(s, i);
        return get;
    }

    // Задать настройки. s - строка идентификатор, b - значение, подставляемое, если настройки нет в системе.
    private void setSettingsBoolean(String s, boolean b){
        SharedPreferences set_settings = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor set = set_settings.edit();
        set.putBoolean(s, b);
        set.commit();
    }

    // Получить настройки. s - строка идентификатор, b - значение, подставляемое, если настройки нет в системе.
    private boolean getSettingsBoolean(String s, boolean b){
        SharedPreferences get_settings = PreferenceManager.getDefaultSharedPreferences(context);
        boolean get = get_settings.getBoolean(s, b);
        return get;
    }

    // Задать настройки. s - строка идентификатор, str - значение, подставляемое, если настройки нет в системе.
    private void setSettingsString(String s, String str){
        SharedPreferences set_settings = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor set = set_settings.edit();
        set.putString(s, str);
        set.commit();
    }

    // Получить настройки. s - строка идентификатор, str - значение, подставляемое, если настройки нет в системе.
    private String getSettingsString(String s, String str){
        SharedPreferences get_settings = PreferenceManager.getDefaultSharedPreferences(context);
        String get = get_settings.getString(s, str);
        return get;
    }
}
